{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys,os \n",
    "root_path = os.path.abspath('../')\n",
    "sys.path.append(root_path)\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import math\n",
    "from util.hw_util import *\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "hu = HwUtil()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "查询行情\n",
      "查询行情-完成\n",
      "开始交易日\n",
      "开始交易日-完成\n",
      "获取财务数据\n",
      "获取财务数据-完成\n",
      "查询除权除息行情\n",
      "查询除权除息行情-完成\n"
     ]
    }
   ],
   "source": [
    "#初始化数据\n",
    "#sta_date_str 回测开始时间\n",
    "#end_date_str 回测结束时间\n",
    "#for_day      需要选股当天往前多少个交易日的数据\n",
    "#is_ck        是否使用ck数据库\n",
    "#is_stk       是否初始化北向资金\n",
    "# 此方法仅初始化一次 无需重复执行\n",
    "#\n",
    "# 行情数据\n",
    "# hu.trade_date_list_md\n",
    "# 股票代码数据\n",
    "# hu.trade_date_list_info\n",
    "# 行情数据-除权除息后\n",
    "# hu.trade_date_list_md_xd\n",
    "# 交易日数据\n",
    "# hu.md_trade_date\n",
    "# 回测交易日数组\n",
    "# hu.trade_date_list\n",
    "# 北向资金交易日数据\n",
    "# hu.md_trade_date_stk\n",
    "# 北向资金持仓数据\n",
    "# hu.trade_stk_hold\n",
    "# 选股结果\n",
    "# hu.res_info_data\n",
    "# 计算收益结果\n",
    "# hu.ret_data\n",
    "# 任何地方均可以调用\n",
    "hu.init_md_trade_sec_data(sta_date_str='2021-01-01',end_date_str='2021-10-14',for_day=30,is_fmc=True,is_stk=False,is_mtss=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "hu.trade_date_list_md_xd[hu.trade_date_list_md_xd['code']=='600111']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2021-01-04\n",
      "2021-01-05\n",
      "2021-01-06\n",
      "2021-01-07\n",
      "2021-01-08\n",
      "2021-01-11\n",
      "2021-01-12\n",
      "2021-01-13\n",
      "2021-01-14\n",
      "2021-01-15\n",
      "2021-01-18\n",
      "2021-01-19\n",
      "2021-01-20\n",
      "2021-01-21\n",
      "2021-01-22\n",
      "2021-01-25\n",
      "2021-01-26\n",
      "2021-01-27\n",
      "2021-01-28\n",
      "2021-01-29\n",
      "2021-02-01\n",
      "2021-02-02\n",
      "2021-02-03\n",
      "2021-02-04\n",
      "2021-02-05\n",
      "2021-02-08\n",
      "2021-02-09\n",
      "2021-02-10\n",
      "2021-02-18\n",
      "2021-02-19\n",
      "2021-02-22\n",
      "2021-02-23\n",
      "2021-02-24\n",
      "2021-02-25\n",
      "2021-02-26\n",
      "2021-03-01\n",
      "2021-03-02\n",
      "2021-03-03\n",
      "2021-03-04\n",
      "2021-03-05\n",
      "2021-03-08\n",
      "2021-03-09\n",
      "2021-03-10\n",
      "2021-03-11\n",
      "2021-03-12\n",
      "2021-03-15\n",
      "2021-03-16\n",
      "2021-03-17\n",
      "2021-03-18\n",
      "2021-03-19\n",
      "2021-03-22\n",
      "2021-03-23\n",
      "2021-03-24\n",
      "2021-03-25\n",
      "2021-03-26\n",
      "2021-03-29\n",
      "2021-03-30\n",
      "2021-03-31\n",
      "2021-04-01\n",
      "2021-04-02\n",
      "2021-04-06\n",
      "2021-04-07\n",
      "2021-04-08\n",
      "2021-04-09\n",
      "2021-04-12\n",
      "2021-04-13\n",
      "2021-04-14\n",
      "2021-04-15\n",
      "2021-04-16\n",
      "2021-04-19\n",
      "2021-04-20\n",
      "2021-04-21\n",
      "2021-04-22\n",
      "2021-04-23\n",
      "2021-04-26\n",
      "2021-04-27\n",
      "2021-04-28\n",
      "2021-04-29\n",
      "2021-04-30\n",
      "2021-05-06\n",
      "2021-05-07\n",
      "2021-05-10\n",
      "2021-05-11\n",
      "2021-05-12\n",
      "2021-05-13\n",
      "2021-05-14\n",
      "2021-05-17\n",
      "2021-05-18\n",
      "2021-05-19\n",
      "2021-05-20\n",
      "2021-05-21\n",
      "2021-05-24\n",
      "2021-05-25\n",
      "2021-05-26\n",
      "2021-05-27\n",
      "2021-05-28\n",
      "2021-05-31\n",
      "2021-06-01\n",
      "2021-06-02\n",
      "2021-06-03\n",
      "2021-06-04\n",
      "2021-06-07\n",
      "2021-06-08\n",
      "2021-06-09\n",
      "2021-06-10\n",
      "2021-06-11\n",
      "2021-06-15\n",
      "2021-06-16\n",
      "2021-06-17\n",
      "2021-06-18\n",
      "2021-06-21\n",
      "2021-06-22\n",
      "2021-06-23\n",
      "2021-06-24\n",
      "2021-06-25\n",
      "2021-06-28\n",
      "2021-06-29\n",
      "2021-06-30\n",
      "2021-07-01\n",
      "2021-07-02\n",
      "2021-07-05\n",
      "2021-07-06\n",
      "2021-07-07\n",
      "2021-07-08\n",
      "2021-07-09\n",
      "2021-07-12\n",
      "2021-07-13\n",
      "2021-07-14\n",
      "2021-07-15\n",
      "2021-07-16\n",
      "2021-07-19\n",
      "2021-07-20\n",
      "2021-07-21\n",
      "2021-07-22\n",
      "2021-07-23\n",
      "2021-07-26\n",
      "2021-07-27\n",
      "2021-07-28\n",
      "2021-07-29\n",
      "2021-07-30\n",
      "2021-08-02\n",
      "2021-08-03\n",
      "2021-08-04\n",
      "2021-08-05\n",
      "2021-08-06\n",
      "2021-08-09\n",
      "2021-08-10\n",
      "2021-08-11\n",
      "2021-08-12\n",
      "2021-08-13\n",
      "2021-08-16\n",
      "2021-08-17\n",
      "2021-08-18\n",
      "2021-08-19\n",
      "2021-08-20\n",
      "2021-08-23\n",
      "2021-08-24\n",
      "2021-08-25\n",
      "2021-08-26\n",
      "2021-08-27\n",
      "2021-08-30\n",
      "2021-08-31\n",
      "2021-09-01\n",
      "2021-09-02\n",
      "2021-09-03\n",
      "2021-09-06\n",
      "2021-09-07\n",
      "2021-09-08\n",
      "2021-09-09\n",
      "2021-09-10\n",
      "2021-09-13\n",
      "2021-09-14\n",
      "2021-09-15\n",
      "2021-09-16\n",
      "2021-09-17\n",
      "2021-09-22\n",
      "2021-09-23\n",
      "2021-09-24\n",
      "2021-09-27\n",
      "2021-09-28\n",
      "2021-09-29\n",
      "2021-09-30\n",
      "2021-10-08\n",
      "2021-10-11\n",
      "2021-10-12\n",
      "2021-10-13\n",
      "2021-10-14\n"
     ]
    }
   ],
   "source": [
    "#开始回测\n",
    "#hu           数据类\n",
    "#size_sec     每天选多少支股票 选股方法的sort有值会根据sort排序 传0则全部\n",
    "#for_day      需要选股当天往前多少个交易日的数据\n",
    "def for_fun(select_sec_md_data,day_date):\n",
    "    colums = ['code','pre_close','sort']\n",
    "    select_sec_data = pd.DataFrame(columns=colums)\n",
    "    sec_code = select_sec_md_data.iloc[0].code\n",
    "    jk_df_a = hu.trade_date_list_md[(hu.trade_date_list_md['trade_date']<datetime.strptime(day_date, \"%Y-%m-%d\").date())&(hu.trade_date_list_md['code']==sec_code)]\n",
    "    jk_df_a_next = hu.trade_date_list_md[(hu.trade_date_list_md['trade_date']==datetime.strptime(day_date, \"%Y-%m-%d\").date())&(hu.trade_date_list_md['code']==sec_code)]\n",
    "    macd_data = pd.DataFrame(columns = jk_df_a.columns)\n",
    "    macd_data = macd_data.append(jk_df_a)\n",
    "    next_open = 0\n",
    "    next_close = 0\n",
    "    if len(jk_df_a_next)>0:\n",
    "        next_open = jk_df_a_next.iloc[0].open\n",
    "        next_close = jk_df_a_next.iloc[0].close\n",
    "    jk_df_a.sort_values(\"trade_date\",inplace=True,ascending=False)\n",
    "    if len(jk_df_a)<2:\n",
    "        return None\n",
    "    jk_df_a = jk_df_a[0:2]\n",
    "    pre_s = jk_df_a.iloc[-1]\n",
    "    last_s = jk_df_a.iloc[0]\n",
    "    pre_close_money = pre_s['close']*1.10-0.01\n",
    "    if last_s['close']>=pre_close_money:\n",
    "        return None\n",
    "    if pre_s['close']<pre_s['open']:\n",
    "        return None\n",
    "    if pre_s['close']>last_s['open']:\n",
    "        return None\n",
    "    if last_s['close']==last_s['high']:\n",
    "        return None\n",
    "    last_close_m = last_s['close']*0.01\n",
    "    last_up_m = last_s['high']-last_s['close']\n",
    "    if last_up_m<last_close_m:\n",
    "        return None\n",
    "    # 计算EMA(12)和EMA(16)\n",
    "    macd_data['EMA12'] = macd_data['close'].ewm(alpha=2 / 13, adjust=False).mean()\n",
    "    macd_data['EMA26'] = macd_data['close'].ewm(alpha=2 / 27, adjust=False).mean()\n",
    "    # 计算DIFF、DEA、MACD\n",
    "    macd_data['DIFF'] = macd_data['EMA12'] - macd_data['EMA26']\n",
    "    macd_data['DEA'] = macd_data['DIFF'].ewm(alpha=2 / 10, adjust=False).mean()\n",
    "    macd_data['MACD'] = 2 * (macd_data['DIFF'] - macd_data['DEA'])\n",
    "    # 上市首日，DIFF、DEA、MACD均为0\n",
    "    macd_data['DIFF'].iloc[0] = 0\n",
    "    macd_data['DEA'].iloc[0] = 0\n",
    "    macd_data['MACD'].iloc[0] = 0\n",
    "    # data_macd = macd_data[macd_data['trade_date']==datetime.strptime(day_date, \"%Y-%m-%d\").date()]\n",
    "    # data_macd = macd_data[-1:-2]\n",
    "    # print(macd_data.iloc[-1])\n",
    "    if len(macd_data)>3:\n",
    "        # print(123)\n",
    "        data_macd_s = macd_data.iloc[-1]\n",
    "        data_macd_s_diff = math.floor(data_macd_s.DIFF*100.00)\n",
    "        data_macd_s_dea = math.floor(data_macd_s.DEA*100.00)\n",
    "        # if (data_macd_s_diff>0)&(data_macd_s_dea>0):\n",
    "        #     if (data_macd_s_diff-data_macd_s_dea)>0:\n",
    "        macd1 = math.floor(macd_data.iloc[-1].MACD*100.00)\n",
    "        macd2 = math.floor(macd_data.iloc[-2].MACD*100.00)\n",
    "        macd3 = math.floor(macd_data.iloc[-3].MACD*100.00)\n",
    "        if (macd3<0)&(macd2>0)&(macd1>macd2):\n",
    "            new_change_pct = (last_s['close']-pre_s['close'])/pre_s['close']*100\n",
    "            if new_change_pct>3.0:\n",
    "                select_sec_data.loc[select_sec_data.shape[0]] = {'code':sec_code,'pre_close':last_s['close'],'sort':new_change_pct}\n",
    "    return select_sec_data\n",
    "\n",
    "hu.start_test(size_sec=9,for_day=30,for_fun=for_fun)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th>size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2021-01-04</td>\n",
       "      <td>[000589.SZ, 002114.SZ, 600710.SH, 601519.SH, 6...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021-01-05</td>\n",
       "      <td>[002048.SZ, 002739.SZ, 600705.SH, 002851.SZ, 6...</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2021-01-06</td>\n",
       "      <td>[002157.SZ, 002507.SZ, 002837.SZ, 603305.SH, 6...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2021-01-07</td>\n",
       "      <td>[000833.SZ, 002505.SZ, 002946.SZ, 003022.SZ, 6...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2021-01-08</td>\n",
       "      <td>[000301.SZ, 002007.SZ, 002254.SZ, 002701.SZ, 0...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>162</th>\n",
       "      <td>2021-09-29</td>\n",
       "      <td>[605337.SH]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>163</th>\n",
       "      <td>2021-10-11</td>\n",
       "      <td>[601158.SH, 603530.SH, 603583.SH, 603633.SH, 6...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>164</th>\n",
       "      <td>2021-10-12</td>\n",
       "      <td>[002732.SZ, 603233.SH]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165</th>\n",
       "      <td>2021-10-13</td>\n",
       "      <td>[002881.SZ, 600857.SH, 603992.SH, 605199.SH]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>166</th>\n",
       "      <td>2021-10-14</td>\n",
       "      <td>[600741.SH]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>167 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           date                                               code size\n",
       "0    2021-01-04  [000589.SZ, 002114.SZ, 600710.SH, 601519.SH, 6...    0\n",
       "1    2021-01-05  [002048.SZ, 002739.SZ, 600705.SH, 002851.SZ, 6...   36\n",
       "2    2021-01-06  [002157.SZ, 002507.SZ, 002837.SZ, 603305.SH, 6...    0\n",
       "3    2021-01-07  [000833.SZ, 002505.SZ, 002946.SZ, 003022.SZ, 6...    0\n",
       "4    2021-01-08  [000301.SZ, 002007.SZ, 002254.SZ, 002701.SZ, 0...    0\n",
       "..          ...                                                ...  ...\n",
       "162  2021-09-29                                        [605337.SH]    0\n",
       "163  2021-10-11  [601158.SH, 603530.SH, 603583.SH, 603633.SH, 6...    0\n",
       "164  2021-10-12                             [002732.SZ, 603233.SH]    0\n",
       "165  2021-10-13       [002881.SZ, 600857.SH, 603992.SH, 605199.SH]    0\n",
       "166  2021-10-14                                        [600741.SH]    0\n",
       "\n",
       "[167 rows x 3 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hu.res_info_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "hu.res_info_data.to_parquet(\"data/2021-10-22.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "开始收益统计\n",
      "2021-01-04\n",
      "2021-01-05\n",
      "2021-01-06\n",
      "2021-01-07\n",
      "2021-01-08\n",
      "2021-01-12\n",
      "2021-01-13\n",
      "2021-01-14\n",
      "2021-01-15\n",
      "2021-01-18\n",
      "2021-01-19\n",
      "2021-01-20\n",
      "2021-01-21\n",
      "2021-01-22\n",
      "2021-01-25\n",
      "2021-01-26\n",
      "2021-01-28\n",
      "2021-01-29\n",
      "2021-02-01\n",
      "2021-02-02\n",
      "2021-02-03\n",
      "2021-02-04\n",
      "2021-02-05\n",
      "2021-02-10\n",
      "2021-02-18\n",
      "2021-02-19\n",
      "2021-02-22\n",
      "2021-02-23\n",
      "2021-02-24\n",
      "2021-02-25\n",
      "2021-02-26\n",
      "2021-03-01\n",
      "2021-03-03\n",
      "2021-03-09\n",
      "2021-03-12\n",
      "2021-03-15\n",
      "2021-03-16\n",
      "2021-03-17\n",
      "2021-03-18\n",
      "2021-03-19\n",
      "2021-03-22\n",
      "2021-03-23\n",
      "2021-03-25\n",
      "2021-03-26\n",
      "2021-03-29\n",
      "2021-03-30\n",
      "2021-03-31\n",
      "2021-04-01\n",
      "2021-04-02\n",
      "2021-04-06\n",
      "2021-04-07\n",
      "2021-04-08\n",
      "2021-04-09\n",
      "2021-04-12\n",
      "2021-04-13\n",
      "2021-04-14\n",
      "2021-04-16\n",
      "2021-04-19\n",
      "2021-04-20\n",
      "2021-04-21\n",
      "2021-04-22\n",
      "2021-04-26\n",
      "2021-04-27\n",
      "2021-04-28\n",
      "2021-04-29\n",
      "2021-05-07\n",
      "2021-05-10\n",
      "2021-05-11\n",
      "2021-05-12\n",
      "2021-05-13\n",
      "2021-05-14\n",
      "2021-05-17\n",
      "2021-05-18\n",
      "2021-05-19\n",
      "2021-05-20\n",
      "2021-05-21\n",
      "2021-05-24\n",
      "2021-05-25\n",
      "2021-05-26\n",
      "2021-05-27\n",
      "2021-05-28\n",
      "2021-05-31\n",
      "2021-06-01\n",
      "2021-06-02\n",
      "2021-06-03\n",
      "2021-06-04\n",
      "2021-06-07\n",
      "2021-06-08\n",
      "2021-06-09\n",
      "2021-06-10\n",
      "2021-06-11\n",
      "2021-06-15\n",
      "2021-06-16\n",
      "2021-06-17\n",
      "2021-06-18\n",
      "2021-06-21\n",
      "2021-06-22\n",
      "2021-06-23\n",
      "2021-06-24\n",
      "2021-06-25\n",
      "2021-06-28\n",
      "2021-06-29\n",
      "2021-06-30\n",
      "2021-07-01\n",
      "2021-07-02\n",
      "2021-07-05\n",
      "2021-07-06\n",
      "2021-07-07\n",
      "2021-07-09\n",
      "2021-07-12\n",
      "2021-07-13\n",
      "2021-07-14\n",
      "2021-07-15\n",
      "2021-07-19\n",
      "2021-07-20\n",
      "2021-07-22\n",
      "2021-07-23\n",
      "2021-07-26\n",
      "2021-07-27\n",
      "2021-07-28\n",
      "2021-07-29\n",
      "2021-07-30\n",
      "2021-08-02\n",
      "2021-08-03\n",
      "2021-08-04\n",
      "2021-08-05\n",
      "2021-08-06\n",
      "2021-08-09\n",
      "2021-08-10\n",
      "2021-08-11\n",
      "2021-08-12\n",
      "2021-08-13\n",
      "2021-08-16\n",
      "2021-08-17\n",
      "2021-08-18\n",
      "2021-08-19\n",
      "2021-08-20\n",
      "2021-08-23\n",
      "2021-08-24\n",
      "2021-08-25\n",
      "2021-08-26\n",
      "2021-08-27\n",
      "2021-08-30\n",
      "2021-08-31\n",
      "2021-09-01\n",
      "2021-09-02\n",
      "2021-09-03\n",
      "2021-09-06\n",
      "2021-09-07\n",
      "2021-09-08\n",
      "2021-09-09\n",
      "2021-09-10\n",
      "2021-09-13\n",
      "2021-09-14\n",
      "2021-09-15\n",
      "2021-09-16\n",
      "2021-09-17\n",
      "2021-09-22\n",
      "2021-09-23\n",
      "2021-09-24\n",
      "2021-09-27\n",
      "2021-09-28\n",
      "2021-09-29\n",
      "2021-10-11\n",
      "2021-10-12\n",
      "2021-10-13\n",
      "2021-10-14\n",
      "收益统计完成\n",
      "总资金:164689.26\n",
      "总收益:-55310.74\n",
      "收益率:-25.14%\n",
      "年化收益率:-54.95%\n",
      "最大回撤:-37.86%\n",
      "胜率:45.51%\n",
      "最大资金使用率:101.71%\n",
      "当次最大亏损:-23051.94\n",
      "当次最大亏损率:-13.08%\n",
      "当次最大盈利:16586.35\n",
      "当次最大盈利率:9.8%\n",
      "总手续费:42238.74\n",
      "买入手续费:6036.35\n",
      "卖出手续费:36202.39\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAIICAYAAACvs/mZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAC8UklEQVR4nOzdd5hjd3k3/O9PvWt6n92Z3dni7bbX625jG7ApxmBjjAlgwIkJkISENMibPITkIQ9JiElCLza9GxswYLDBdW2v7fX2vlN2d/poimYkjbrO+4fO0WhmJI26NNL3c11zefboSDrrnaJbdxOSJIGIiIiIiIiokqhKfQFERERERERE+cZgl4iIiIiIiCoOg10iIiIiIiKqOAx2iYiIiIiIqOIw2CUiIiIiIqKKw2CXiIiIiIiIKo4mk5NVKpVkNBoLdS1ERERERERUIkajEVNTU5OSJDWW+lryIaNg12g0wuPxFOpaiIiIiIiIqISEEKZSX0O+sIyZiIiIiIiIKg6DXSIiIiIiIqo4DHaJiIiIiIio4mTUs0tERERERJUjGAxiaGgIPp+v1JdCRWYwGNDR0QGtVlvqSykYBrtERERERFVqaGgIVqsVXV1dEEKU+nKoSCRJwtTUFIaGhtDd3V3qyykYljETEREREVUpn8+H+vp6BrpVRgiB+vr6is/oM9glIiIiIqpiDHSrUzX8uzPYJSIiIiIioorDYJeIiIiIiEj23//935ifny/Y43u9Xlx//fUIh8MJb7/qqqtWfIyuri5MTk4uO/7000/jhRdeiP35C1/4Ah588MHsL3aVY7BLRERERERVJVmgCWQX7IZCobTPffDBB3H77bdDrVYnfIz4YDVTS4PdD3zgA/j85z+f9eOtdpzGTERERERE+NSjx3FiZC6vj7mlzYZP3ro16e0ejwfveMc7MDQ0hHA4jH/6p3/CXXfdha6uLuzfvx8NDQ3Yv38//uZv/gZPP/00/vmf/xkDAwPo7+/HhQsX8LnPfQ779u3DY489hvb2djz66KNJV+l0dXXhrrvuwhNPPIG/+7u/Q11dHT75yU/C7/dj/fr1+OY3v4kHH3wQIyMjuOGGG9DQ0ICnnnoKFosFbrcbAPDQQw/hV7/6Fb71rW/hfe97HwwGAw4ePIirr74a09PTsNls2L9/P8bGxvAf//EfePvb377sOr7//e/jBz/4AYBocPpP//RPqK2txalTp3DmzJnY80UiEfzZn/0ZnnzySXR2dkKr1eIDH/hA7DE///nP49FHH0UwGMRPf/pTGAwGfOUrX4Farcb3vvc9fP7zn8e1116Lrq4uvPzyy9izZ0+u/5yrDjO7RERERERUEr/97W/R1taGw4cP49ixY7jllltWvE9fXx+efPJJ/PKXv8S73/1u3HDDDTh69CiMRiN+/etfp7xvfX09Dhw4gNe+9rX4v//3/+L3v/89Dhw4gN27d+P+++/HX/zFX6CtrQ1PPfUUnnrqqRWvZWhoCC+88ALuv/9+AMDo6Cj27t2LX/3qV/j4xz++7PxAIID+/n50dXXFjh04cAD/8z//gzNnziw69+GHH8a5c+dw4sQJfPe738WLL7646PaGhgYcOHAAH/rQh/DZz34WXV1d+NM//VP81V/9FQ4dOoRrr70WALB7924899xzK/5dKhEzu0RERERElDIDWyjbt2/HX//1X+Pv//7v8eY3vzkWoKXyhje8AVqtFtu3b0c4HI4FyNu3b8e5c+dS3veuu+4CAOzbtw8nTpzA1VdfDSAahF555ZUZX/+dd965qBz5rW99K1QqFbZs2YLx8fFl509OTqKmpmbRsT179iTcdbt3717ceeedUKlUaGlpwQ033LDo9ttvvx0AcOmll+Lhhx9Oeo1NTU04depUJn+tisFgl4iIiIiISmLjxo04cOAAfvOb3+Af//EfcdNNN+H//J//A41Gg0gkAgDLdsHq9XoAgEqlglarja3QUalUK/bOms1mAIAkSXjd616HH/7whyteY/yKnqXXojze0mtTnmMpo9G44mOkS3kutVqd8u/t8/lgNBqzeo7VjmXMRERERERUEiMjIzCZTHj3u9+Nv/3bv8WBAwcARPtrX331VQDAz372s7w/7xVXXIHnn38evb29AKK9w0oZsdVqhcvlip3b3NyMkydPIhKJ4JFHHsnpeWtraxEOh5cFvIlcffXV+NnPfoZIJILx8XE8/fTTK95n6bUDwJkzZ7Bt27ZsL3lVY7BLREREREQlcfToUezZswe7du3Cpz71KfzjP/4jAOCTn/wkPvrRj2L37t3LphbnQ2NjI771rW/h7rvvxo4dO3DllVfGSn3vu+8+3HLLLbGy4c985jN485vfjKuuugqtra05P/frX/967N27d8Xz7rjjDnR0dGDL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vtzOLWsbqCw50ZbogoWV1FcEeHTP0XGZXS1jFhERkcxTsCsiIjPWUFVMR98w1toJ4z9/pYOhSIzN6ya2c/J4DDeurufJ/cfpCUUBZXZFREQkOxTsiojIjDVWlhCKxukNj04Y37LjMMvrgqxbMu+U+2xavYBwND5WqEp7dkVERCQb9I1DRERmrKm6BIDLPv8LmqpLWVYbpKGqhBcP9/Hnt6waK0w13hXLaigP+Nh2oAvQMmYRERHJDgW7IiIyY9evqudfb7uYA0cHOdgV4uDxEM8c7Ka82Md7Llk46X38Pg/XnjefrTvbMQZKihTsioiISOYp2BURkRkr8np454WNE8YSCctoIkHAN3UQu2lNPVt3thP0+ybN/oqIiIikm4JdERE5Kx6PIeCZPlv71pV1+L0eLWEWERGRrFGBKhERybjy4iI2NtdSEwzkeioiIiIyR5iT20dMJxgM2lAolMHpiIhIoeoJRQlHYyyaV5rrqYiIiMgUjDFha20w1/NIBy1jFhGRrKgO+qkO+nM9DREREZkjtIxZRERERERECo6CXRERERERESk4CnZFRERERESk4CjYFRERERERkYKjYFdEREREREQKjoJdERERERERKTgKdkVERERERKTgKNgVERERERGRgqNgV0RERERERAqOgl0REREREREpOAp2RUREREREZEaMMXcbY44ZY3aPG/sbY8wRY8zLzs8t4277rDGmxRizzxhz07jxtzljLcaYPx03vtQY85wzfq8xxu+MB5y/W5zbl5xurgp2RUREREREZKa+DbxtkvF/ttZe5Pw8CGCMWQ1sBtY49/m6McZrjPECXwNuBlYDtznHAnzJeawVQC/wUWf8o0CvM/7PznHTUrArIiIiIiIiM2KtfQromeHhtwJbrLURa+0bQAuw3vlpsdYetNZGgS3ArcYYA1wH/NC5/3eAd417rO84v/8QuN45fkoKdkVERERERORs3WGMecVZ5jzPGVsItI47ps0Zm2q8Buiz1sZOGp/wWM7t/c7xU1KwKyIiIiIiIik+Y8zz434+NoP7fANYDlwEdABfzuQEZ8qX6wmIiIiIiIhI3ohZay+bzR2stUdTvxtjvgX8zPnzCNA07tBFzhhTjHcDVcYYn5O9HX986rHajDE+oNI5fkrK7IqIiIiIiMgZM8Y0jPvz3UCqUvNWYLNTSXkp0AxsB3YA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",
      "text/plain": [
       "<Figure size 1152x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def sec_filter(pre_md_data,md):\n",
    "    # print(md)\n",
    "    # print(pre_md_data.iloc[-1])\n",
    "    if md.open>=(pre_md_data.iloc[-1].close*1.09):\n",
    "        return False\n",
    "    else:\n",
    "        return True\n",
    "#hu             数据类\n",
    "#num_sell_day   几天后卖出 1为明天卖出\n",
    "#test_money     回测金额\n",
    "#day_num        往前几天买入 默认1 勿修改\n",
    "#sell_par       卖出字段 open close\n",
    "#buy_par        买入字段 open close\n",
    "#hold_money_r   持仓占比 0.5 or 1.0\n",
    "hu.start_test_profit(num_sell_day=1,test_money=220000,day_num=1,sell_par='open',buy_par='open',hold_money_r=1,sec_filter=sec_filter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "asa = hu.ret_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "colums = ['trade_date','code','signal_name','return','float_m','turnover_ratio']\n",
    "select_sec_data = pd.DataFrame(columns=colums)\n",
    "for index, row in hu.res_info_data.iterrows():\n",
    "    date = datetime.strptime(row['date'], \"%Y-%m-%d\").date()\n",
    "    print(date)\n",
    "    code_list = row['code']\n",
    "    for s_code in code_list:\n",
    "        to_day_md_data = hu.trade_date_list_md_xd[(hu.trade_date_list_md_xd['trade_date']==date)&(hu.trade_date_list_md_xd['code']==s_code)]\n",
    "        next_md_data = hu.trade_date_list_md_xd[(hu.trade_date_list_md_xd['trade_date']>date)&(hu.trade_date_list_md_xd['code']==s_code)]\n",
    "        pre_md_data = hu.trade_date_list_md_xd[(hu.trade_date_list_md_xd['trade_date']<date)&(hu.trade_date_list_md_xd['code']==s_code)]\n",
    "        if (len(to_day_md_data)<=0)|(len(pre_md_data)<=0)|(len(next_md_data)<=0):\n",
    "            print(s_code)\n",
    "            select_sec_data.loc[select_sec_data.shape[0]] = {'trade_date':date,'code':s_code,'signal_name':'capital_water_9','return':0}\n",
    "        elif to_day_md_data.iloc[-1].open>=(pre_md_data.iloc[-1].close*1.09):\n",
    "\n",
    "            select_sec_data.loc[select_sec_data.shape[0]] = {'trade_date':date,'code':s_code,'signal_name':'capital_water_9','return':0}\n",
    "        else:\n",
    "            last_m = hu.financial_market_capitalization[(hu.financial_market_capitalization['trade_date']==pre_md_data.iloc[-1].trade_date)&(hu.financial_market_capitalization['code']==s_code)]\n",
    "            return_m = round((next_md_data.iloc[0].open-to_day_md_data.iloc[-1].open)/to_day_md_data.iloc[-1].open*100,2)\n",
    "            if len(last_m)>0:\n",
    "                select_sec_data.loc[select_sec_data.shape[0]] = {'trade_date':date,'code':s_code,'signal_name':'capital_water_9','return':return_m,'float_m':last_m.iloc[-1].flow_market_capitalization,'turnover_ratio':last_m.iloc[-1].turnover_ratio}\n",
    "            else:\n",
    "                select_sec_data.loc[select_sec_data.shape[0]] = {'trade_date':date,'code':s_code,'signal_name':'capital_water_9','return':return_m,'float_m':0,'turnover_ratio':0}\n",
    "    # hu.pqd.ck.insert_dataframe(select_sec_data,\"processed_data_stocks\",\"stocks_signal_data\")\n",
    "    # print(select_sec_data)\n",
    "print(select_sec_data)\n",
    "\n",
    "\n",
    "res_info_data = pd.DataFrame(columns=['date','code'])\n",
    "for index, row in hu.res_info_data.iterrows():\n",
    "    date = datetime.strptime(row['date'], \"%Y-%m-%d\").date()\n",
    "    print(date)\n",
    "    code_list = row['code']\n",
    "    p_sec_num_buy = pd.DataFrame(columns=['code','buy_money','sell_money'])\n",
    "    last_trade = hu.get_previous_num_trade_date(hu.md_trade_date,date,1)\n",
    "    last_m = hu.financial_market_capitalization[hu.financial_market_capitalization['trade_date']==last_trade]\n",
    "    colums = ['code','sort']\n",
    "    select_sec_data = pd.DataFrame(columns=colums)\n",
    "    for s_code in code_list:\n",
    "        fmc = last_m[last_m['code']==s_code]\n",
    "        if len(fmc)>0:\n",
    "            turnover_ratio = fmc.iloc[-1]['turnover_ratio']\n",
    "            flow_market_capitalization = fmc.iloc[-1]['flow_market_capitalization']\n",
    "            if flow_market_capitalization>100:\n",
    "            # if (turnover_ratio>20)&(turnover_ratio<30):\n",
    "                if (turnover_ratio>10):\n",
    "                    select_sec_data.loc[select_sec_data.shape[0]] = {'code':s_code,'sort':turnover_ratio}\n",
    "    select_sec_data.sort_values(\"sort\",inplace=True,ascending=False)\n",
    "    select_sec_data = select_sec_data[0:1]\n",
    "    res_info_data.loc[res_info_data.shape[0]] = {'date':row['date'],'code':select_sec_data['code'].tolist()}\n",
    "res_info_data"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "047edc17978fcec36365898495b1b6de8a14521ee4f737035e20a6ab22989f99"
  },
  "kernelspec": {
   "display_name": "Python 3.9.4 64-bit",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.4"
  },
  "metadata": {
   "interpreter": {
    "hash": "b9349baf60296d31c1fc16cfd4f7454d7a12625f03dcdcca8738bf86ef65e21c"
   }
  },
  "orig_nbformat": 2
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
